from pymongo import MongoClient
# 设置字体，不然无法显示中文
from matplotlib import pyplot as plt


plt.rcParams['font.sans-serif'] = ['SimHei']

conn = MongoClient('localhost', port=27017)
db = conn["qunaer"]   # 库
table = db["qunaer"]  # 表


arr = [[0, 50], [50,100], [100, 200], [200,300], [300,500], [500,1000]]
labels = []
total_arr = []
for i in arr:
    result = table.count({'price': {'$gte': i[0], '$lt': i[1]}})
    name = '%s元 ~ %s元 ' % (i[0], i[1])
    labels.append(name)
    total_arr.append(result)
print(total_arr)

color = 'red', 'orange', 'green', 'blue', 'gray', 'goldenrod'  # 各类别颜色
explode = (0.2, 0, 0, 0, 0, 0)  # 各类别的偏移半径

# 绘制饼状图
pie = plt.pie(x=total_arr, colors=color, explode=explode, labels=labels, shadow=True, autopct='%1.1f%%')
"""
x: 比率
colors: 指定的颜色，可以不写
explode: 突出部分
labels: 标签
shadow: 阴影
autopct='%1.1f%%'  一位小数
"""

plt.axis('equal')  # 圆形 没有就为椭圆
plt.title('热点旅游景区门票价格比例', fontsize=12)

# bbox_to_anchor 图例位置
plt.legend(bbox_to_anchor=(0.85, 1))  # 图例
# 设置legend的字体大小
leg = plt.gca().get_legend()
ltext = leg.get_texts()
plt.setp(ltext, fontsize=6)
plt.savefig('价格比例')  # 保存为图片

plt.show()